using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

using ZombieHigh2.Controller;
using ZombieHigh2.Interfaces;
using ZombieHigh2.Audio;
using ZombieHigh2.AI;
using QuadAnimation.Animation;


namespace ZombieHigh2.Actor
{
    public class ZombieOne : Monster
    {
        public ZombieOne(ActionEvents actions, AudioSystem audio, AnimatedObject animatedObject)
            : base(actions, audio, animatedObject)
        {
            InputController = new ZombieAI();
            IdleTime = 3f;
            lastState = ((BaseAIController)InputController).GetCurrentState();
            Health = 10;
        }

        public override void Load()
        {
            base.Load();
            //Quad = new AnimatedQuad(Vector3.Zero, Vector3.Backward, Vector3.Up, 96, 128, 384, 512, 96, 128);
            //Quad.SetFrame(0);
        }

        //Not used right now
        //public override void Update(float dt)
        //{

        //    base.Update(dt);
        //}

        public override void Info_PlayerLocation(Vector3 position)
        {
            ((AIEvents)InputController).AI_PlayerLocation(Pos, position);
        }

        public override void Info_IdleTimeUp()
        {
            ((AIEvents)InputController).AI_IdleTimeUp();
            //SetCurrentState(PlayerState.PSTATE_IDLE);
            //IdleTime = 1.5f;
        }

        public override void Info_Damage(BaseActor who, int amount)
        {
            ((AIEvents)InputController).AI_Damage(amount);
            StunTime = 5.5f;

            base.Info_Damage(who, amount);
        }

        public override void Info_HealthLessThanZero()
        {
            ((AIEvents)InputController).AI_HealthLessThanZero();   
        }

        public override void Info_StunTimeUp()
        {
            ((AIEvents)InputController).AI_StunTimeUp();            
        }

        protected override void OnAnimationEnd()
        {
        }
    }
}
